package vip.liux.backend.application.service.point;

import lombok.Getter;
import lombok.Setter;
import vip.liux.application.dots.ListResultDto;
import vip.liux.application.dots.PagedResultDto;
import vip.liux.application.dots.PagedResultRequestDto;

import java.util.List;

public interface PointsAccountService {
    /**
     * 获取用户积分账户信息
     *
     * @param userId 用户ID
     * @return 用户积分账户信息
     */
    PointsAccountDto getPointsOverview(Long userId);

    /**
     * 批量获取用户积分账户信息
     *
     * @param userIds 用户ID列表
     * @return 用户积分账户信息列表
     */
    ListResultDto<PointsAccountDto> getPointsList(List<Long> userIds);

    /**
     * 分页查询用户积分账户
     */
    PagedResultDto<PointsAccountDto> queryAccount(PointsAccountQueryDto input);

    /**
     * 后台手动调整用户积分
     */
    void adjustPoints(PointsAdjustDto dto);

    @Getter
    @Setter
    static class PointsAccountQueryDto extends PagedResultRequestDto {
        private Long userId;

        private Long userMobile;
    }
}
